﻿Imports System.Web.UI
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.Configuration
Imports System.Net.Mail

Partial Public Class Wfrm_CreaSolicitud
    Inherits System.Web.UI.Page


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'session("usuario")
        If Not Page.IsPostBack Then
            txtCantidad.Attributes.Add("onkeypress", "javascript:return ValidNum(event);")
            'Session("usu") = Session("usuario")
            ViewState("usu") = Session("usuario")
            llena_combo()
            carga_bodega()
            FK_EMPRESA()
            CreaDatatable()
            Carga_Datos_Usuario()
            Cargar_Grupo()
            'llena_combo()
        End If
    End Sub
    Sub Cargar_Grupo()
        'cmbGrupo
        Dim exec As New DotNetDal.SQLPersistence(False, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence

        rp.StoredProcedure = "SP_OC_CARGA_GRUPO"
        'rp.AddParametro(ViewState("usu"))
        exec.ExecuteDataTable(rp)

        If rp.TieneDatos Then
            cmbGrupo.DataTextField = "tdescripcion"
            cmbGrupo.DataValueField = "ncodigo_pki"
            cmbGrupo.DataSource = rp.DtTable
            cmbGrupo.DataBind()
            cmbGrupo.UpdateAfterCallBack = True
        End If

    End Sub
    Sub CreaDatatable() 'JQ

        Dim Dt2 As New DataTable
        Dt2.Columns.Add("")
        Dt2.Columns.Add("nCodigo_PKI")
        Dt2.Columns.Add("Producto")
        Dt2.Columns.Add("tNombre")
        Dt2.Columns.Add("CANT_SOLICITADA")
        Dt2.Columns.Add("FK_PROVEEDOR_TEMP")
        Dt2.Columns.Add("PRECIO_TEMP")
        Dt2.Columns.Add("PROVEEDOR")

        ViewState("DT") = Dt2
    End Sub
    Sub FK_EMPRESA()
        Dim exec As New DotNetDal.SQLPersistence(False, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence

        rp.StoredProcedure = ("SP_OC_GET_FK_EMPRESA")
        rp.AddParametro(ViewState("usu"))
        exec.ExecuteDataTable(rp)

        If rp.TieneDatos Then
            ViewState("FK_EMPRESA") = rp.DtTable.Rows(0).Item(0).ToString
        End If
        If rp.Errores Then
            'erro
        Else
            'ok
        End If

    End Sub


    Sub carga_bodega()
        Dim exec As New DotNetDal.SQLPersistence(False, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence

        rp.StoredProcedure = ("SP_OC_CARGA_BODEGA")
        rp.AddParametro(ViewState("usu"))
        exec.ExecuteDataTable(rp)

        If rp.TieneDatos Then
            cmbBodega.DataTextField = "DESCRIPCION"
            cmbBodega.DataValueField = "ID_BODEGA"
            cmbBodega.DataSource = rp.DtTable
            cmbBodega.DataBind()
            cmbBodega.UpdateAfterCallBack = True
        End If
    End Sub

    Sub llena_combo()
        ' If ViewState("Vista") Is Nothing Then
        Dim exec As New DotNetDal.SQLPersistence(False, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence

        If Rad_orden.SelectedValue = "tnombre1" Then
            rp.StoredProcedure = ("SP_OC_PRODUCTOS")
        Else
            rp.StoredProcedure = ("SP_OC_PRODUCTOS_cod")
        End If

        rp.AddParametro(cmbGrupo.SelectedValue)
        exec.ExecuteDataTable(rp)

        If rp.TieneDatos Then
            'Dim Vista As New DataView(rp.DtTable)
            'ViewState("Vista") = rp.DtTable
            'Vista.Sort = Me.Rad_orden.SelectedValue '& " desc"

            cmbProducto.DataTextField = "tnombre"
            cmbProducto.DataValueField = "nCodigo_PKI"
            cmbProducto.DataSource = rp.DtTable
            cmbProducto.DataBind()
            cmbProducto.UpdateAfterCallBack = True
        End If
        'Else
        'Dim Vista As New DataView(ViewState("Vista"))
        'Vista.Sort = Me.Rad_orden.SelectedValue '& " desc"

        'cmbProducto.DataTextField = "tnombre"
        'cmbProducto.DataValueField = "nCodigo_PKI"
        'cmbProducto.DataSource = Vista
        'cmbProducto.DataBind()
        'cmbProducto.UpdateAfterCallBack = True
        'End If
        cmbProducto_SelectedIndexChanged(Nothing, Nothing)
    End Sub

    Private Function SumarProducto(ByVal codProducto As String) As Decimal 'JQ
        Dim i As Integer
        For i = 0 To DataGrid2.Items.Count - 1
            If codProducto = DataGrid2.Items(i).Cells(1).Text And DataGrid2.Items(i).Cells(7).Text = Cmb_Proveedor.SelectedValue.Split(" ")(0) Then
                Return DirectCast(DirectCast(DataGrid2.Items(i).Cells(4).FindControl("Label5"), System.Web.UI.Control), Label).Text

            End If
        Next
        Return 0
    End Function

    Sub AgregaProducto(ByVal fk_solicitud As String, ByVal fk_producto As String, ByVal Cant_sol As Decimal, ByVal Proveedor As String, ByVal Precio As Decimal) 'JQ

        Dim exec As New DotNetDal.SQLPersistence(True, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence

        rp.StoredProcedure = "SP_OC_ADD_SOLICITUD_PRODUCTO"

        rp.AddParametro(fk_solicitud)
        rp.AddParametro(fk_producto)
        rp.AddParametro(Cant_sol)
        rp.AddParametro(ViewState("usu"))

        rp.AddParametro(Proveedor) '21-07-2011
        rp.AddParametro(Precio) '21-07-2011

        exec.ExecuteNonQuery(rp)
        exec.Commit()

        If rp.Errores Then

        End If
    End Sub
    Sub ActualizaProducto(ByVal fk_solicitud As String, ByVal fk_producto As String, ByVal Cant_sol As Decimal, ByVal Proveedor As String, ByVal Precio As Decimal) 'JQ

        Dim exec As New DotNetDal.SQLPersistence(True, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence

        rp.StoredProcedure = "SP_OC_UPDATE_SOLICITUD_PRODUCTO"

        rp.AddParametro(fk_solicitud)
        rp.AddParametro(fk_producto)
        rp.AddParametro(Cant_sol)
        rp.AddParametro(ViewState("usu"))

        rp.AddParametro(Proveedor) '21-07-2011
        rp.AddParametro(Precio) '21-07-2011

        exec.ExecuteNonQuery(rp)
        exec.Commit()

        If rp.Errores Then

        End If
    End Sub

    Sub GetProductosSolicitud()  'JQ      
        Dim exec As New DotNetDal.SQLPersistence(False, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence
        rp.StoredProcedure = "SP_OC_GET_SOLICITUD_PRODUCTO"
        rp.AddParametro(txtSolicitud.Text)
        exec.ExecuteDataTable(rp)
        ' ViewState("DT") = rp.DtTable 'OJO estaba descomentado antes del 21 07 2011
        If rp.TieneDatos Then
            'ViewState("datos") = rp.DtTable.Rows(0).Item(4).ToString
            DataGrid2.DataSource = rp.DtTable
            DataGrid2.DataBind()
            DataGrid2.UpdateAfterCallBack = True
        End If

    End Sub
    Protected Sub DataGrid2_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles DataGrid2.SelectedIndexChanged

        If btnAgrega.Visible = False Then
            Exit Sub
        End If

        Dim exec As New DotNetDal.SQLPersistence(True, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence
        If Val(txtSolicitud.Text) = 0 Then
            Dim i As Integer
            For i = 0 To ViewState("DT").Rows.Count - 1
                If ViewState("DT").Rows(i).Item(1) = DataGrid2.SelectedItem.Cells(1).Text Then  'cmbProducto.SelectedValue Then DU
                    ViewState("DT").Rows(i).Delete()
                    Exit For
                End If
            Next

            DataGrid2.DataSource = ViewState("DT")
            DataGrid2.DataBind()
            DataGrid2.UpdateAfterCallBack = True

        Else
            'se quita fila directamente de la tabla

            For i = 0 To ViewState("DT").Rows.Count - 1
                If ViewState("DT").Rows(i).Item(0) = DataGrid2.SelectedItem.Cells(1).Text Then  'cmbProducto.SelectedValue Then DU
                    ViewState("DT").Rows(i).Delete()
                    Exit For
                End If
            Next

            'hacer sp pa eliminar de la tabla  --- parecido al update 

            rp.StoredProcedure = "SP_OC_DELETE_PRODUCTO"
            rp.AddParametro(DataGrid2.SelectedItem.Cells(1).Text)
            exec.ExecuteNonQuery(rp)
            exec.Commit()
            If rp.Errores Then

            End If
            'Cargar grilla
            GetProductosSolicitud()

        End If
        Try
            lbl_nro_productos.Text = DataGrid2.Items.Count
            lbl_nro_productos.UpdateAfterCallBack = True

        Catch ex As Exception

        End Try

    End Sub
    Function Valida_Factor_Empaque() As Boolean
        'Por ejemplo si factor es 1 o null no se verifica..
        'Marcelino Barraza Arenas: si el factor es >= 2 si 
        'el resto de la division unidad/factor de enpaque es igual cero 
        'es valido sino lo rechaza

        'SP_OC_Get_Empaque
        ' @id_producto numeric(18,0)
        ',@proveedor numeric(18,0)

        Dim exec As New DotNetDal.SQLPersistence(False, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence
        rp.StoredProcedure = "SP_OC_Get_Empaque"
        rp.AddParametro(cmbProducto.SelectedValue)
        rp.AddParametro(Cmb_Proveedor.SelectedValue.Split(" ")(0))
        rp.AddParametro(Val(txt_Precio.Text))
        exec.ExecuteScalar(rp)        
        If rp.TieneDatos Then
            If rp.Get_Value = 1 Then
                Return True
            Else
                If Val(txtCantidad.Text) Mod rp.Get_Value = 0 Then
                    Return True
                Else
                  
                    Return False

                End If
            End If
        Else
        Mensaje("No se ha encontrado el producto asociado al Proveedor")
        Return False
        End If


    End Function
    Protected Sub btnAgrega_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnAgrega.Click

        'Precio
        Dim Precio0 As String
        Try
            Precio0 = Cmb_Proveedor.SelectedItem.Text
        Catch ex As Exception
            Precio0 = "0"
        End Try

        Try
            txt_Precio.Text = Precio0.Split(" ")(1)
            txt_Precio.UpdateAfterCallBack = True
        Catch ex As Exception
            txt_Precio.Text = 0
            txt_Precio.UpdateAfterCallBack = True
        End Try

        If Val(txt_Precio.Text) > 0 Then
            'Validar Factor Empaque 11-09-2011
            If Not Valida_Factor_Empaque() Then
                Mensaje("El factor de empaque no permite esta cantidad")
                Exit Sub
            End If
        End If

        If DataGrid2.Items.Count = 0 Then
            ViewState("DT") = Nothing
            CreaDatatable()
        End If

        If txtCantidad.Text = "" Or txtCantidad.Text = "0" Then
            Mensaje("Wfrm_CreaSolicitud", "ValNumeroIng")
            Exit Sub

        End If

        If Not IsNumeric(txtCantidad.Text) Then
            Mensaje("Wfrm_CreaSolicitud", "ValNumero2")
            Exit Sub

        End If




        Dim Cant As Decimal = SumarProducto(cmbProducto.SelectedValue) 'JQ

        Dim FK_PROVEEDOR As String = 0

        If Cmb_Proveedor.SelectedValue.Split(" ")(0) <> "-1" Then
            FK_PROVEEDOR = Cmb_Proveedor.SelectedValue.Split(" ")(0)
        End If

        Dim Precio As Decimal = 0

        Try
            Precio = Val(txt_Precio.Text)
        Catch ex As Exception
            'no es un numero 
            Precio = 0
            Exit Sub
        End Try


        If Val(txtSolicitud.Text) = 0 Then
            'nueva solicitud, se maneja grilla por ViewState("DT")
            If Cant > 0 Then
                Dim i As Integer
                For i = 0 To ViewState("DT").Rows.Count - 1
                    If ViewState("DT").Rows(i).Item(1) = cmbProducto.SelectedValue And FK_PROVEEDOR = ViewState("DT").Rows(i).Item(5) Then
                        ViewState("DT").Rows(i).Item(4) = txtCantidad.Text + Cant
                        ViewState("DT").Rows(i).Item(5) = FK_PROVEEDOR
                        ViewState("DT").Rows(i).Item(6) = Precio
                        ViewState("DT").Rows(i).Item(7) = Cmb_Proveedor.SelectedItem.Text.Replace("Seleccione", "")
                        Exit For
                    End If
                Next
            Else
                'se agrega fila al datatable
                Dim dr As DataRow
                dr = ViewState("DT").NewRow
                dr(0) = ""
                dr(1) = cmbProducto.SelectedValue.ToString
                dr(2) = cmbProducto.SelectedItem.ToString
                dr(3) = cmbProducto.SelectedItem.ToString
                dr(4) = txtCantidad.Text
                dr(5) = FK_PROVEEDOR
                dr(6) = Precio
                dr(7) = Cmb_Proveedor.SelectedItem.Text.Replace("Seleccione", "")
                ' dr(8) = Cmb_Proveedor.SelectedValue


                ViewState("DT").Rows.Add(dr)

            End If

            DataGrid2.DataSource = ViewState("DT")
            DataGrid2.DataBind()
            DataGrid2.UpdateAfterCallBack = True

        Else
            'se agrega producto directamente a la tabla
            If Cant > 0 Then
                ActualizaProducto(Val(txtSolicitud.Text), cmbProducto.SelectedValue, txtCantidad.Text + Cant, FK_PROVEEDOR, Precio)
            Else
                AgregaProducto(Val(txtSolicitud.Text), cmbProducto.SelectedValue, txtCantidad.Text, FK_PROVEEDOR, Precio)
            End If
            'Se carga grilla nuevamente
            GetProductosSolicitud()
        End If

        lbl_nro_solicitud.Text = txtSolicitud.Text
        lbl_nro_solicitud.UpdateAfterCallBack = True
        Try
            lbl_nro_productos.Text = DataGrid2.Items.Count
            lbl_nro_productos.UpdateAfterCallBack = True
        Catch ex As Exception

        End Try




        txtCantidad.Text = ""
        txtCantidad.UpdateAfterCallBack = True

        btnFinSol.Visible = True
        btnFinSol.UpdateAfterCallBack = True

        btnGrabaSol.Visible = True
        btnGrabaSol.UpdateAfterCallBack = True


    End Sub

    Protected Sub btnGrabaSol_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnGrabaSol.Click
        Dim id_sol As String = grabar()
        lbl_nro_solicitud.Text = id_sol
        lbl_nro_solicitud.UpdateAfterCallBack = True

        If id_sol > 0 Then
            Mensaje("Wfrm_CreaSolicitud", "SolGrab")
            btnImprimir.Visible = True
            btnImprimir.UpdateAfterCallBack = True

        Else
            Mensaje("Wfrm_CreaSolicitud", "ErrorSol")
            txtSolicitud.Text = Nothing
            txtSolicitud.UpdateAfterCallBack = True
        End If
    End Sub
    Function grabar()
        Dim exec As New DotNetDal.SQLPersistence(True, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence
        Dim id_sol As String

        If txtSolicitud.Text <> "" Then
            ViewState("id_sol") = Val(txtSolicitud.Text)

            rp.ClearParametro()
            rp.StoredProcedure = "SP_OC_INSERT_SOLICITUD"
            rp.AddParametro(ViewState("FK_EMPRESA")) '("FK_EMPRESA") 'nClinicaID de usuario, HACER SP
            rp.AddParametro(cmbBodega.SelectedValue) '("FK_BODEGA") 'id_bodega del combobox
            rp.AddParametro(ViewState("usu")) '("FK_USUARIO_CREA") 'PONDRE Tcodigo_user_PK, FVOR REVISAR
            rp.AddParametro("0") '("ESTADO_SOL")
            rp.AddParametro(txt_Observacion.Text.Trim) '16 julio 2011
            rp.AddParametro(Val(txtSolicitud.Text)) '16 julio 2011
            rp.AddParametro(cmbCosto.SelectedValue) '23 JULIO 2011
            exec.ExecuteScalar(rp) 'cuando queremos que devuelva un valor, el @@IDENTITY del SP.


            'For i = 0 To DataGrid2.Items.Count - 1
            '    rp.ClearParametro()
            '    rp.TieneDatos = False
            '    rp.StoredProcedure = "SP_OC_UPDATE_SOLICITUD_PRODUCTO"
            '    rp.AddParametro(txtSolicitud.Text)
            '    rp.AddParametro(DataGrid2.Items(i).Cells(1).Text.ToString)
            '    rp.AddParametro(DirectCast(DirectCast(DataGrid2.Items(i).Cells(4).FindControl("Label5"), System.Web.UI.Control), Label).Text)
            '    rp.AddParametro(ViewState("usu"))
            '    rp.AddParametro(cmbBodega.SelectedValue)             
            '    exec.ExecuteNonQuery(rp)
            '    If rp.Errores Then
            '        Return 0
            '    Else
            '    End If
            'Next
            exec.Commit()
            If rp.Errores Then
                Return 0
            Else
                Mensaje("Wfrm_CreaSolicitud", "SolAct")
            End If
            Return txtSolicitud.Text
        Else
            rp.ClearParametro()
            rp.StoredProcedure = "SP_OC_INSERT_SOLICITUD"
            rp.AddParametro(ViewState("FK_EMPRESA")) '("FK_EMPRESA") 'nClinicaID de usuario, HACER SP
            rp.AddParametro(cmbBodega.SelectedValue) '("FK_BODEGA") 'id_bodega del combobox
            rp.AddParametro(ViewState("usu")) '("FK_USUARIO_CREA") 'PONDRE Tcodigo_user_PK, FVOR REVISAR
            rp.AddParametro("0") '("ESTADO_SOL")
            rp.AddParametro(txt_Observacion.Text.Trim) '16 julio 2011
            rp.AddParametro(Val(txtSolicitud.Text)) '16 julio 2011
            rp.AddParametro(cmbCosto.SelectedValue) 'cmbCosto

            exec.ExecuteScalar(rp) 'cuando queremos que devuelva un valor, el @@IDENTITY del SP.
            id_sol = rp.GetScalar
            ViewState("id_sol") = rp.GetScalar
            txtSolicitud.Text = rp.GetScalar
            txtSolicitud.UpdateAfterCallBack = True

            For i = 0 To DataGrid2.Items.Count - 1
                rp.ClearParametro()
                rp.TieneDatos = False

                rp.StoredProcedure = "SP_OC_INSERT_SOLICITUD_PRODUCTO"
                rp.AddParametro(id_sol)
                rp.AddParametro(DataGrid2.Items(i).Cells(1).Text.ToString)
                rp.AddParametro((DirectCast(DirectCast(DataGrid2.Items(i).Cells(4).FindControl("Label5"), System.Web.UI.Control), Label).Text))
                rp.AddParametro(ViewState("usu"))

                If DataGrid2.Items(i).Cells(7).Text = "&nbsp;" Then
                    rp.AddParametro(Nothing) '21-07-2011
                Else
                    rp.AddParametro(DataGrid2.Items(i).Cells(7).Text)
                End If

                rp.AddParametro(Val(DataGrid2.Items(i).Cells(6).Text)) '21-07-2011

                exec.ExecuteNonQuery(rp)

            Next


        End If

        If rp.Errores Then
            exec.Rollback()
            Mensaje(rp.MensajeError)
            Return 0       
        End If


        If Not rp.Errores Then
            exec.Commit()
            Return id_sol
        Else
            Mensaje(rp.MensajeError)
        End If
        Return 0
    End Function
    Protected Sub btnNuevaSol_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnNuevaSol.Click
        DataGrid2.DataSource = Nothing
        DataGrid2.DataBind()
        DataGrid2.UpdateAfterCallBack = True
        txtSolicitud.Text = Nothing
        txtSolicitud.UpdateAfterCallBack = True
        txtCantidad.Text = Nothing
        txtCantidad.UpdateAfterCallBack = True

        ViewState("DT") = Nothing
        CreaDatatable()
        carga_bodega()
        llena_combo()


        btnAgrega.Visible = True
        btnGrabaSol.UpdateAfterCallBack = True

        lbl_nro_solicitud.Text = "--"
        lbl_nro_productos.Text = "--"

        lbl_nro_solicitud.UpdateAfterCallBack = True
        lbl_nro_productos.UpdateAfterCallBack = True

    End Sub

    Protected Sub btnFinSol_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnFinSol.Click
        Dim exec As New DotNetDal.SQLPersistence(True, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence

        If DataGrid2.Items.Count = 0 Then
            Mensaje("Wfrm_CreaSolicitud", "ValGri")
            Exit Sub

        End If

        Dim id_sol As String = grabar()
        lbl_nro_solicitud.Text = id_sol
        lbl_nro_solicitud.UpdateAfterCallBack = True

        If id_sol > 0 Then
            rp.StoredProcedure = ("SP_OC_UPDATE_SOLICITUD")
            rp.AddParametro(id_sol)
            exec.ExecuteNonQuery(rp)
            exec.Commit()

            If rp.Errores Then

            Else
                btnFinSol.Visible = False
                btnFinSol.UpdateAfterCallBack = True

                btnGrabaSol.Visible = False
                btnGrabaSol.UpdateAfterCallBack = True

                btnAgrega.Visible = False
                btnGrabaSol.UpdateAfterCallBack = True

                Mensaje("Solicitud Finalizada y Enviada Correctamente")
                ViewState("id_sol") = Nothing

                btnAgrega.Visible = False
                btnAgrega.UpdateAfterCallBack = True

            End If

        End If

        'btnGrabaSol_Click(Nothing, Nothing)


    End Sub

    Sub Mensaje(ByVal tbl As String, ByVal codigo As String)
        'pnl_mensaje.Visible = True
        Dim Mensaje As String ' = FuncionesGlobal.GetMensaje(tbl, codigo)
        If ViewState("id_sol") <> Nothing Then
            Mensaje = FuncionesGlobal.GetMensaje(tbl, codigo) & ", " & "Solicitud N°: " & ViewState("id_sol")
        Else
            Mensaje = FuncionesGlobal.GetMensaje(tbl, codigo)
        End If

        If Anthem.Manager.IsCallBack Then
            Anthem.Manager.AddScriptForClientSideEval("alert('" & Mensaje & "')")
        Else
            Page.ClientScript.RegisterStartupScript(Me.GetType, "alertar", "<script>alert('" & Mensaje & "')</script>")
        End If


        ' pnl_mensaje.UpdateAfterCallBack = True
        ' lbl_mensaje.UpdateAfterCallBack = True
    End Sub

    Sub Mensaje(ByVal Msg As String)

        If Anthem.Manager.IsCallBack Then
            Anthem.Manager.AddScriptForClientSideEval("alert('" & Msg & "')")
        Else
            Page.ClientScript.RegisterStartupScript(Me.GetType, "alertar", "<script>alert('" & Msg & "')</script>")
        End If

    End Sub


    Sub lblMensaje(ByVal Mensaje As String)
        If Anthem.Manager.IsCallBack Then
            Anthem.Manager.AddScriptForClientSideEval("alert('" & Mensaje & "')")
        Else
            Page.ClientScript.RegisterStartupScript(Me.GetType, "alertar", "<script>alert('" & Mensaje & "')</script>")
        End If
    End Sub

    Protected Sub Rad_orden_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles Rad_orden.SelectedIndexChanged
        llena_combo()
    End Sub
    Sub Carga_Datos_Usuario()
        Dim exec As New DotNetDal.SQLPersistence(False, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence
        rp.StoredProcedure = "SP_OC_Get_INFO_FORM"
        rp.AddParametro(ViewState("usu"))
        exec.ExecuteDataTable(rp)

        If rp.TieneDatos Then
            lbl_clinica.Text = rp.DtTable.Rows(0).Item("tNombreFantasia").ToString.Trim
            lbl_usuario.Text = rp.DtTable.Rows(0).Item("Tnombre").ToString.Trim
            lbl_fecha.Text = Now

            lbl_clinica.UpdateAfterCallBack = True
            lbl_usuario.UpdateAfterCallBack = True
            lbl_fecha.UpdateAfterCallBack = True

        End If

    End Sub

    Protected Sub btnImprimir_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnImprimir.Click
        Dim rp As New Rpt_Solicitud

        Dim _CRConnectionInfo As ConnectionInfo

        _CRConnectionInfo = New ConnectionInfo()
        _CRConnectionInfo.ServerName = ConfigurationManager.AppSettings("cnn_server") '"application.dyndns-web.com"
        _CRConnectionInfo.DatabaseName = ConfigurationManager.AppSettings("cnn_database") '"comprasFarm"
        _CRConnectionInfo.UserID = ConfigurationManager.AppSettings("cnn_userid") '"lilas"
        _CRConnectionInfo.Password = ConfigurationManager.AppSettings("cnn_password") '"lilas"

        Dim tables As Tables
        tables = rp.Database.Tables
        For i = 0 To tables.Count - 1
            Dim tableLogonInfo As TableLogOnInfo = tables(i).LogOnInfo
            tableLogonInfo.ConnectionInfo = _CRConnectionInfo
            tables(i).ApplyLogOnInfo(tableLogonInfo)
        Next

        rp.SetParameterValue(1, lbl_nro_solicitud.Text)
        rp.SetParameterValue(0, ViewState("usu"))
        rp.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Page.Response, True, "Solicitud_Nro_" & lbl_nro_solicitud.Text & ".pdf")
         
    End Sub

    Protected Sub cmbProducto_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cmbProducto.SelectedIndexChanged
      
        Dim exec As New DotNetDal.SQLPersistence(False, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence
        rp.StoredProcedure = "Sp_OC_Get_UnidadMedida_Producto"
        rp.AddParametro(cmbProducto.SelectedValue)
        exec.ExecuteScalar(rp)
        lbl_unidad.Text = rp.GetScalar
        lbl_unidad.UpdateAfterCallBack = True

        Cmb_Proveedor.Items.Clear()

        '21 Julio 2011 - Presentar Proveedor y precio
        Cmb_Proveedor.DataSource = FuncionesGlobal.GetProveedorPrecioSOL(cmbProducto.SelectedValue)
        Cmb_Proveedor.DataValueField = "tRUT_PK"
        Cmb_Proveedor.DataTextField = "tNombres"
        Cmb_Proveedor.DataBind()
        Cmb_Proveedor.UpdateAfterCallBack = True

        Dim item As New ListItem
        item.Text = "Seleccione"
        item.Value = "-1"
        item.Selected = True
        Cmb_Proveedor.Items.Add(item)

        'Cmb_Proveedor.SelectedValue = "-1"

        Cmb_Proveedor_SelectedIndexChanged1(Nothing, Nothing)

    End Sub

    Protected Sub Cmb_Proveedor_SelectedIndexChanged1(ByVal sender As Object, ByVal e As EventArgs) Handles Cmb_Proveedor.SelectedIndexChanged
        'Precio
        Dim Precio As String
        Try
            Precio = Cmb_Proveedor.SelectedItem.Text
        Catch ex As Exception
            Precio = "0"
        End Try

        Try
            txt_Precio.Text = Precio.Split(" ")(1)
            txt_Precio.UpdateAfterCallBack = True
        Catch ex As Exception
            txt_Precio.Text = 0
            txt_Precio.UpdateAfterCallBack = True
        End Try



    End Sub

    Protected Sub cmbGrupo_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cmbGrupo.SelectedIndexChanged
        llena_combo()
    End Sub
End Class